#pragma once

//#include <mongocxx/exception/operation_exception.hpp>
//#include <mongocxx/exception/server_error_code.hpp>
//#include <mongocxx/exception/bulk_write_exception.hpp>
//#include <bsoncxx/json.hpp>
//#include <bsoncxx/builder/stream/array.hpp>
//#include <bsoncxx/builder/stream/document.hpp>
//#include <bsoncxx/builder/basic/kvp.hpp>
//#include <bsoncxx/builder/basic/document.hpp>
//
//#include <mongocxx/cursor.hpp>
//#include <mongocxx/client.hpp>
//#include <mongocxx/stdx.hpp>
//#include <mongocxx/uri.hpp>
//#include <mongocxx/instance.hpp>
//#include <mongocxx/pool.hpp>
//#include <mongocxx/logger.hpp>
//


//using namespace bsoncxx;
//using bsoncxx::builder::basic::kvp;
//using bsoncxx::builder::basic::make_array;
//using bsoncxx::builder::basic::make_document;
//using bsoncxx::builder::basic::sub_array;
//using namespace bsoncxx::builder::basic;
//
//using bsoncxx::builder::stream::close_array;
//using bsoncxx::builder::stream::close_document;
//using bsoncxx::builder::stream::document;
//using bsoncxx::builder::stream::finalize;
//using bsoncxx::builder::stream::open_array;
//using bsoncxx::builder::stream::open_document;

//#define MAKE_KVP(T) kvp(#T, T)
//#define MAKE_DOC_KVP(T) make_document(kvp(#T, T))
//
//#define TRY_MONGO_PROESS_START try {
//#define TRY_MONGO_PROESS_END \
//}\
//catch (const mongocxx::bulk_write_exception &e){\
//	LOG_INFO << "Adding a document whose _id is already present throws:" << std::endl;\
//	if (e.code().category() != mongocxx::server_error_category()){\
//		return EXIT_FAILURE;}\
//	if (e.code().value() != 11000) {\
//		return EXIT_FAILURE;}\
//	LOG_INFO << e.what() << std::endl; \
//	if (e.raw_server_error()) {\
//		LOG_INFO << "Raw server error:" << std::endl;\
//		LOG_INFO << bsoncxx::to_json(*(e.raw_server_error())) << std::endl;}\
//	return e.code().value();\
//}\

